# 这里的SQLAlchemy,Session不需要导入，可以直接写配置
import logging
import redis  # 集成redis数据库



class Config(object):
    """对项目进行配置，一些配置项写在这里"""
    DEBUG = True
    SECRET_KEY = "#$@%$^^%$&*^%*%&^"
    # mysql数据库链接地址
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info_gz10"
    # 设置不跟踪数据库的修改
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # redis数据库相关配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 对session的一些配置
    SESSION_TYPE = "redis"  # 存储类型
    SESSION_KEY_PREFIX = "Session:"  # 设置前缀
    SESSION_USE_SIGNER = True  # 签名存储
    SESSION_REDIS = redis.StrictRedis(host = REDIS_HOST, port = REDIS_PORT)  # 制定存储位置(session连接到redis数据库)
    PERMANENT_SESSION_LIFETIME = 3600 * 24 * 2  # 设置session两天有效


class DevelopmentConfig(Config):
    """开发模式下的配置"""
    LOG_LV = logging.DEBUG  # 日志等级
    DEBUG = True

class ProductionConfig(Config):
    """生产模式下的配置(线上)"""
    LOG_LV = logging.ERROR  # 生产(线上)环境中，日志等级设置为ERROR
    DEBUG = False  # 不以调试模式启动


# 字典映射，通过键值来确定是什么模式（开发/线上）
config_dict = {
    "develop": DevelopmentConfig,
    "product": ProductionConfig
}
